testrun: TESTRUN_LAUNCHER for batch systems; tests/reconverse-site-run.sh for HPC-site runs of the reconverse tier - #3975
Conversation
…n.sh Runtime-core changes get a manual run on an HPC site before merging, and until now that meant a hand-written sbatch script per run (the Anvil validation of reconverse #217/#222 wrote one). Two pieces make it a one-line job that tracks CI: - testrun honors TESTRUN_LAUNCHER, a launcher plus its flags ("srun --mpi=pmi2 -N2 --ntasks-per-node=1 -c2"), used for every run including single-process ones, with -n <procs> appended. Inside a Slurm allocation a reconverse binary must go through srun even alone: LCI's bootstrap reads the inherited SLURM_NTASKS/SLURM_PROCID and waits for peers. Unset, the behaviour is unchanged (bare exec, or lcrun for TESTRUN_PROCS > 1). - tests/reconverse-site-run.sh runs the reconverse-ci TEST_DIRS tier (read from the workflow file, so the site run and CI stay in step) inside an allocation: build each directory, then make test once as a single process and once as PROCS processes over NODES nodes, printing one RESULT line per run. SITE=anvil loads that machine's modules and hwloc path; SITE=delta sets the cxi provider; the launcher and its flags are overridable, which also makes the script runnable with lcrun on a workstation (used to check it here). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Post-merge run of
One finding about the script. The default launcher flags ( Everything else worked as documented: |
Summary
Runtime-core changes get a manual run on an HPC site before merging (the reconverse-ci header says so), and until now that meant a hand-written sbatch script each time; the Anvil validation of reconverse #217 and #222 wrote one. This makes it a one-line job that tracks CI.
testrunhonorsTESTRUN_LAUNCHER: a launcher plus flags, e.g.srun --mpi=pmi2 -N2 --ntasks-per-node=1 -c2, used for every run including single-process ones, with-n <procs>appended. Inside a Slurm allocation a reconverse binary must go throughsruneven alone (LCI's bootstrap reads the inheritedSLURM_NTASKS/SLURM_PROCIDand waits for peers). Unset, nothing changes: bare exec, or lcrun forTESTRUN_PROCS > 1.tests/reconverse-site-run.shruns thereconverse-ci.yamlTEST_DIRS tier inside an allocation: build each directory, thenmake testonce single-process and once asPROCSprocesses overNODESnodes, oneRESULT <dir> <shape> exit=<code>line per run and a summary.SITE=anvilloads that machine's modules and hwloc library path;SITE=deltasetsFI_PROVIDER=cxi; launcher and flags are overridable (which also lets it run with lcrun on a workstation).Usage, from an allocation such as
salloc -N 2 -n 4 -c 2or an sbatch script, after building charm:Checked on macOS with lcrun standing in for srun (
LAUNCHER=.../lcrun LAUNCHER_ARGS_SINGLE= LAUNCHER_ARGS_MULTI= NODES=1): the three testrun modes produce the expected commands and the script runs a two-directory tier end to end. Not yet exercised on Anvil or Delta itself; the first site run of it is the remaining test.🤖 Generated with Claude Code